package main

import (
	"bufio"
	"fmt"
	"os"
	"strings"
)

func main() {
	reader := bufio.NewReader(os.Stdin)
	fmt.Print("请输入任意字符串: ")
	input, _ := reader.ReadString('\n')
	input = strings.TrimSuffix(input, "\n") // 去除换行符

	// 创建一个map来存储字符及其出现的次数
	charCount := make(map[rune]int)

	// 遍历字符串并统计字符出现次数
	for _, char := range input {
		charCount[char]++
	}

	// 初始化最多和最少次数的变量
	maxCount := 0
	minCount := len(input) + 1 // 初始化为比可能的最大次数还要大的值
	maxChar := rune(0)
	minChar := rune(0)

	// 遍历map找到出现次数最多和最少的字符
	for char, count := range charCount {
		if count > maxCount {
			maxCount = count
			maxChar = char
		}
		if count < minCount && count > 0 { // 忽略出现次数为0的字符
			minCount = count
			minChar = char
		}
	}

	// 输出结果
	fmt.Printf("出现次数最多的字符: '%c'，出现次数: %d\n", maxChar, maxCount)
	fmt.Printf("出现次数最少的字符: '%c'，出现次数: %d\n", minChar, minCount)
}

